<?php

namespace App\Tyt\Service\Storage;


use App\Models\FileTransaction;
use App\Models\Qiniu;

interface StorageInterface
{
    /**
     * 初始化配置信息
     */
    public function init(Qiniu $qiniu): StorageInterface;

    /**
     * 发送文件
     */
    public function send(): StorageInterface;

    /**
     * 验证是否成功
     */
    public function isSuccess(): bool ;

    /**
     * 获取返回数据
     */
    public function getData();

    /**
     * 设置文件名
     * @param FileTransaction $transaction
     * @return string
     */
    public function setName(FileTransaction $transaction): string;

    /**
     * 设置参数
     * @param array $attributes
     * @return StorageInterface
     */
    public function setParams(array $attributes): StorageInterface;
}